#include <stdio.h>
#include <stdlib.h>

// 定义线性表的最大长度
#define MAX_SIZE 100

// 定义线性表结构体
typedef struct {
    int data[MAX_SIZE];
    int length;
} List;

// 初始化线性表
void initList(List *L) {
    L->length = 0;
}

// 拆分线性表
void splitList(List A, List *B, List *C) {
    int i;
    for (i = 0; i < A.length; i++) {  // 遍历 A 表中的每个元素
        if (A.data[i] >= 0) {  // 如果元素大于等于 0
            B->data[B->length++] = A.data[i];  // 放入 B 表，并增加 B 表的长度
        } else {  // 否则
            C->data[C->length++] = A.data[i];  // 放入 C 表，并增加 C 表的长度
        }
    }
}

// 打印线性表
void printList(List L) {
    int i;
    for (i = 0; i < L.length; i++) {
        printf("%d ", L.data[i]);
    }
    printf("\n");
}

int main() {
    List A, B, C;
    initList(&A);
    initList(&B);
    initList(&C);

    // 假设给 A 表赋值
    A.data[0] = -1;
    A.data[1] = 2;
    A.data[2] = -3;
    A.data[3] = 4;
    A.length = 4;

    splitList(A, &B, &C);

    printf("表 B: ");
    printList(B);

    printf("表 C: ");
    printList(C);

    return 0;
}